library("reactable")
library("htmltools")
source(here("R", "plotting.R"))
source(here("R", "tables.R"))
labels <- drake::readd("labels")
metrics <- drake::readd("metrics") %>%
    filter(dataset == params$dataset)

1 Overall

1.1 Plot

plot_dataset_overall(metrics)

1.2 Table

make_dataset_table(metrics, labels)

2 Individual metrics

2.1 Overall

metric_barplot(metrics, overall, "Overall score")

2.2 Batch correction

src_list <- lapply(names(labels$metrics$batch), function(label) {
    metric <- labels$metrics$batch[label]
    src <- c(
        "### <<label>> {.unnumbered}",
        "```{r metrics-batch-<<metric>>}",
        "metric_barplot(metrics, <<metric>>, '<<label>>')",
        "```",
        ""
    )
    knitr::knit_expand(text = src, delim = c("<<", ">>"))
})
out <- knitr::knit_child(text = unlist(src_list), options = list(cache = FALSE))

Batch correction

metric_barplot(metrics, batch_correction, 'Batch correction')

PCR batch

metric_barplot(metrics, PCR_batch, 'PCR batch')

Batch ASW

metric_barplot(metrics, ASW_label_batch, 'Batch ASW')

Graph iLISI

metric_barplot(metrics, iLISI, 'Graph iLISI')

Graph connectivity

metric_barplot(metrics, graph_connectivity, 'Graph connectivity')

kBET

metric_barplot(metrics, kBET, 'kBET')

2.3 Bio conservation

src_list <- lapply(names(labels$metrics$bio), function(label) {
    metric <- labels$metrics$bio[label]
    src <- c(
        "### <<label>> {.unnumbered}",
        "```{r metrics-bio-<<metric>>}",
        "metric_barplot(metrics, <<metric>>, '<<label>>')",
        "```",
        ""
    )
    knitr::knit_expand(text = src, delim = c("<<", ">>"))
})
out <- knitr::knit_child(text = unlist(src_list), options = list(cache = FALSE))

Bio conservation

metric_barplot(metrics, bio_conservation, 'Bio conservation')

NMI cluster/label

metric_barplot(metrics, NMI_cluster_label, 'NMI cluster/label')

ARI cluster/label

metric_barplot(metrics, ARI_cluster_label, 'ARI cluster/label')

Label ASW

metric_barplot(metrics, ASW_label, 'Label ASW')

Isolated label F1

metric_barplot(metrics, isolated_label_F1, 'Isolated label F1')

Isolated label silhouette

metric_barplot(metrics, isolated_label_silhouette, 'Isolated label silhouette')

Graph cLISI

metric_barplot(metrics, cLISI, 'Graph cLISI')

HVG conservation

metric_barplot(metrics, HVG_overlap, 'HVG conservation')

Cell cycle conservation

metric_barplot(metrics, cell_cycle, 'Cell cycle conservation')

Trajectory conservation

metric_barplot(metrics, trajectory, 'Trajectory conservation')

3 UMAPs

full_src <- list()
for (feature in levels(metrics$features)) {
    full_src <- c(
        full_src,
        paste("##", feature, "{.unnumbered .tabset .tabset-pills .tabset-fade}"),
        ""
    )
    for (scale in levels(metrics$scaling)) {
        full_src <- c(
            full_src,
            paste("###", scale, "{.unnumbered .tabset .tabset-pills}"), ""
        )
        metrics_sel <- filter(metrics, features == feature, scaling == scale)
        src_list <- map2_chr(
            metrics_sel$method, metrics_sel$output,
            function(.method, .output) {
                batch_path <- here(
                    "data", params$dataset,
                    tolower(scale),
                    if_else(feature == "Full", "full_feature", "hvg"),
                    paste(
                        labels$methods[.method],
                        case_when(
                            .output == "Features"  ~ "full",
                            .output == "Embedding" ~ "embed",
                            .output == "Graph"     ~ "knn"
                        ),
                        "batch.png", sep = "_"
                    )
                )
                labels_path <- str_replace(batch_path, "batch", "labels")
                src <- c(
                    "#### <<.method>> - <<.output>> {.tabset .unnumbered}",
                    "",
                    "##### Batch {.unnumbered}",
                    "```{r umap-<<feature>>-<<scale>>-<<.method>>-<<.output>>-batch}",
                    "knitr::include_graphics('<<batch_path>>')",
                    "```",
                    "",
                    "##### Labels {.unnumbered}",
                    "```{r umap-<<feature>>-<<scale>>-<<.method>>-<<.output>>-labels}",
                    "knitr::include_graphics('<<labels_path>>')",
                    "```",
                    ""
                )
                knitr::knit_expand(text = src, delim = c("<<", ">>"))
        })
        full_src <- c(full_src, src_list)
    }
}

out <- knitr::knit_child(text = unlist(full_src), options = list(cache = FALSE))

Full

Scaled

MNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/mnn_full_labels.png')

Scanorama - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_embed_labels.png')

Scanorama - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/scanorama_full_labels.png')

Seurat v3 - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/seurat_full_labels.png')

Harmony - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/harmony_embed_labels.png')

BBKNN - Graph

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/bbknn_knn_labels.png')

ComBat - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/combat_full_labels.png')

FastMNN - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_embed_labels.png')

FastMNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/full_feature/fastmnn_full_labels.png')

Unscaled

MNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/mnn_full_labels.png')

Scanorama - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_embed_labels.png')

Scanorama - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanorama_full_labels.png')

Seurat v3 - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/seurat_full_labels.png')

Harmony - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/harmony_embed_labels.png')

BBKNN - Graph

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/bbknn_knn_labels.png')

scVI - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scvi_embed_labels.png')

ComBat - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/combat_full_labels.png')

LIGER - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/liger_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/liger_embed_labels.png')

scANVI - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/scanvi_embed_labels.png')

FastMNN - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_embed_labels.png')

FastMNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/fastmnn_full_labels.png')

Unintegrated - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/unintegrated_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/full_feature/unintegrated_full_labels.png')

HVG

Scaled

MNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/mnn_full_labels.png')

Scanorama - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_embed_labels.png')

Scanorama - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/scanorama_full_labels.png')

Seurat v3 - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/seurat_full_labels.png')

Harmony - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/harmony_embed_labels.png')

BBKNN - Graph

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/bbknn_knn_labels.png')

ComBat - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/combat_full_labels.png')

FastMNN - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_embed_labels.png')

FastMNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/scaled/hvg/fastmnn_full_labels.png')

Unscaled

MNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/mnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/mnn_full_labels.png')

Scanorama - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_embed_labels.png')

Scanorama - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanorama_full_labels.png')

Seurat v3 - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/seurat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/seurat_full_labels.png')

Harmony - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/harmony_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/harmony_embed_labels.png')

BBKNN - Graph

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/bbknn_knn_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/bbknn_knn_labels.png')

scVI - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scvi_embed_labels.png')

ComBat - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/combat_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/combat_full_labels.png')

LIGER - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/liger_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/liger_embed_labels.png')

scANVI - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanvi_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/scanvi_embed_labels.png')

FastMNN - Embedding

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_embed_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_embed_labels.png')

FastMNN - Features

Batch
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_full_batch.png')

Labels
knitr::include_graphics('/Users/luke.zappia/Documents/Projects/scIB-results/data/mini_sim/unscaled/hvg/fastmnn_full_labels.png')